The popularity of the Internet, coupled with the increasing capabilities of personal/mobile electronic devices, has provided consumers with the ability to enjoy multimedia content almost anytime and anywhere. For example, live (e.g., sports events) and video on demand (VOD) content (e.g., television shows and movies) can be streamed via the Internet to personal electronic devices (e.g., computers, mobile phones, and Internet-enabled televisions).
Typically, a streaming protocol is used to stream content from a content source to a destination device. One example of a streaming protocol is real time messaging protocol (RTMP). U.S. Pat. Nos. 7,272,658, 7,587,509, 8,065,426, 7,961,878, and 8,051,287 are associated with RTMP and/or RTMP encrypted (RTMPE). In RTMP, streams are communicated using fragments called “chunks.” Typically, a first chunk of a stream has a complete header, and subsequent chunks may have shorter headers that eliminate header information that has not changed relative to the first chunk. Based on how much redundant information is omitted, chunks may be classified as one of multiple types of chunks, and a chunk type may be included in each chunk header. When a packet is divided into multiple chunks, each chunk may have a chunk header. Further, a transmitting device may be responsible for determining what type of chunk is being transmitted, so that the chunk type field may be properly coded. Thus, existing streaming protocols may occupy an unacceptably high amount of overhead or involve an unacceptably large amount of control processing. The high overhead or control processing may lead to degradation in stream quality (e.g., when a large number of packets are to be communicated, such as for high-definition content, or when a large number of destination devices are simultaneously streaming the same content).